﻿using System.Collections.Generic;

namespace SEIPropertyDataService.Entity.ViewModels
{
    /// <summary>
    /// 纯组分温度相关物性计算参数模型
    /// </summary>
    public class VM_PurePropTDepCalcModel
    {
        /// <summary>
        /// 单位集名称
        /// </summary>
        public string UnitSet { get; set; }
        /// <summary>
        /// 参与计算的组分ID列表
        /// </summary>
        public List<int> ComponentIds { get; set; }
        /// <summary>
        /// 物性类型key
        /// </summary>
        public string PropertyTypeKey { get; set; }
        /// <summary>
        /// 相态类型key
        /// </summary>
        public string PhaseTypeKey { get; set; }
        /// <summary>
        /// 物性计算公式key
        /// </summary>
        public string FormulaKey { get; set; }
        /// <summary>
        /// 温度单位key
        /// </summary>
        public string TempUnitKey { get; set; } = "1";
        /// <summary>
        /// 温度变化方式，等距 = 1,对数 = 2,值列表 = 3,
        /// </summary>
        public int TempVary { get; set; }
        /// <summary>
        /// 起始温度，变化方式为等距/对数时设置
        /// </summary>
        public double? Start { get; set; }
        /// <summary>
        /// 结束温度，变化方式为等距/对数时设置
        /// </summary>
        public double? End { get; set; }
        /// <summary>
        /// 区间数，温度变化方式为等距时候，与增量互斥，只设置其中一个;温度变化方式为对数时必填
        /// </summary>
        public int? Quantity { get; set; }
        /// <summary>
        /// 增量，温度变化方式为等距时候，与区间数互斥，只设置其中一个；其他变化方式不设置
        /// </summary>
        public double? Increment { get; set; }
        /// <summary>
        /// 值列表，温度变化方式为值列表时设置
        /// </summary>
        public List<double>? ValueList { get; set; }
        /// <summary>
        /// 压力值
        /// </summary>
        public double Pressure { get; set; }
        /// <summary>
        /// 压力单位Key
        /// </summary>
        public string PressureUnitKey { get; set; } = "1";
        /// <summary>
        /// 输出单位（物性单位）key
        /// </summary>
        public string OutPutUnitKey { get; set; }
        /// <summary>
        /// 模拟级别，1-10
        /// </summary>
        public int SIM_LEVEL { get; set; } = 5;

        /// <summary>
        /// 属性级别,1-10
        /// </summary>
        public int PROP_LEVEL { get; set; } = 5;
    }
}
